/*
 * Section.h
 *
 *  Created on: 6 mars 2011
 *      Author: Julien
 */

#ifndef SECTION_H_
#define SECTION_H_

#include <iostream>
#include "LigneTramway.h"
#include "FeuSignalisationTramway.h"
#include "Element.h"
#include "couleur.h"
#include <typeinfo>

using namespace std;

class LigneTramway;
class Element;
class Rails;

class Section {
	private:
		Element** ligne;
		LigneTramway * lt;
		int taille;
		int numero; // Numero de section (sa place dans la ligne de tramway)
		FeuSignalisationTramway * feuSignalisationTramway;
	public:
		Section(){}
		Section(int taille);
		void afficher_feuxSection();
		void afficher_hautSection();
		void afficher_basSection();
		LigneTramway * getLigneTramway();
		void setLigneTramway(LigneTramway * l); // Ligne de tramway contenant cette section
		void setNumero(int n); // Numero de section (sa place dans la ligne de tramway)
		int getNumero(); // Numero de section (sa place dans la ligne de tramway)
		void ajouterElementSection(Element* element, const int place);

		Element * emplacementSuivant(int position, int vitesse, bool * memeSection);

		Element * operator [](int place);
		Element * getElement(int position);

		void setFeuSignalisation(FeuSignalisationTramway * feu);
		FeuSignalisationTramway * getFeuSignalisation() const;

		int getTaille() const;

		virtual ~Section();
};

#endif /* SECTION_H_ */
